package com.own.component.elastic.core.base.aop;

import com.own.component.elastic.core.base.ElasticFieldHandlerEnum;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * ElasticFieldCommon
 *
 * @author chenxueli
 * @date 2024-03-11 14:20:00
 */
@Target({ElementType.FIELD, ElementType.TYPE})
@Retention(value = RetentionPolicy.RUNTIME)
public @interface ElasticFieldCommon {

    /**
     * 名称
     *
     * @return 名称
     */
    String name() default "";

    /**
     * 后置处理
     *
     * @return 后置处理
     */
    ElasticFieldHandlerEnum[] value() default {};

    /**
     * 处理的key名称，处理定义的key
     *
     * @return key名称
     */
    String[] handlerKeys() default {};

}
